package com.efast.cafe.portal.dao.api;

import java.util.List;

import org.apache.ibatis.annotations.Param;

/**
 * <p>
 * 接口
 * </p>
 * <p>
 * Table: portal_api_sys_mod_def - 系统模块关系定义
 * </p>
 *
 * @since ${.now}
 */

public interface PortalApiSysModDefDao {

	/**
	 * 新增系统模块关系
	 * 
	 * @Date : 2017年8月11日
	 * @param systemId
	 * @param ModuleId
	 * @param createUser
	 * @return
	 */
	public void insertApiSysModDef(@Param("systemId")Integer systemId, @Param("moduleId")Integer moduleId, @Param("createUser")String createUser,@Param("isDefault")Integer isDefault);

	/**
	 * 批量新增系统模块关系
	 * 
	 * @param systemId
	 * @param moduleIds
	 * @param createUser
	 * @return void
	 * @Author Administrator
	 * @Date 2017年8月14日
	 */
	public void insertApiSysModDefList(@Param("systemId") Integer systemId, @Param("moduleIds") List<Integer> moduleIds,
			@Param("user")String user);

	/**
	 *批量复制系统下模块关系到另一个系统
	 *@param fromId
	 *@param toId
	 *@param user 
	 *@return void
	 *@Author  Administrator
	 *@Date 2017年8月15日
	 */
	public void copyApiSysModDefListTo(@Param("fromId") Integer fromId,@Param("toId") Integer toId,@Param("user")String user);
	/**
	 * 通过系统id，查询该系统是否有生效的模块
	 * 
	 * @Date : 2017年8月11日
	 * @param systemId
	 * @return
	 */
	public int moduleCountBySyetemId(@Param("systemId")Integer systemId);
	
	/**
	 * 删除模块的时候，删除模块与系统的关系
	 * @Date        :      2017年8月27日
	 * @param moduleId
	 */
	public void deleteApiSysModDef(@Param("moduleId")Integer moduleId);
	
	/**
	 * 通过system和module查询到sysmoddef表中的id，然后修改默认状态
	 * @Date        :      2017年8月27日
	 * @param systemId
	 * @param moduleId
	 * @param isDefault
	 */
	public void updateIsDefault(@Param("systemId")Integer systemId,@Param("moduleId")Integer moduleId,@Param("isDefault")Integer isDefault,@Param("user")String user);
}